package com.bdqn.ch06.SZ.Service.impl;

import com.bdqn.ch06.SZ.Service.UserService;
import com.bdqn.ch06.SZ.entity.User;
import com.bdqn.ch06.SZ.mapper.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * UserServiceImpl
 * 用户模块业务实现
 *
 * @aurhor Administrator  whs
 * @since 2024/7/10
 */


@Service("userService")  // 使用@Service 注解将UserServiceImpl 的实例注册到Spring 容器中
public class UserServiceImpl implements UserService {

    @Autowired //  通过  @Autowired 注解将 userDao 注入到当前类中
    private UserDao userDao;



//    private UserDao userDao = new UserDaoImpl();

    // 通过工厂获取所依赖的UserDao对象
//    private UserDao userDao = UserDaoFactory.getInstance();

    /**
     * 声明接口类型的引用，和具体实现类解耦合
     */
//    private UserDao userDao ;

//    /**
//     * 无参构造
//     * @param
//     */
//    public UserServiceImpl() {}
//
//    //用于为dao属性赋值的构造方法
//    public UserServiceImpl(UserDao userDao) {
//        this.userDao = userDao;
//    }

    /**
     * 保存用户信息
     * @param user
     */
    @Override
    public void save(User user) {
        //调用UserDao的方法保存用户信息
        userDao.save(user);
    }

    /**
     * dao 属性的 setter 访问器，会被 Spring调用 ， 实现设值注入
     * @param
     */
//    public void setUserDao(UserDao userDao) {
//        this.userDao = userDao;
//    }

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void print(){
        System.out.println(userDao);
    }
}
